package com.itheima.demo1;

import java.util.*;

/*
本题综合单列集合，双列集合，键盘输入，Stream流操作
1、键盘录入3个学生信息,存储到学生对象(姓名,年龄)，
然后添加到ArrayList集合中；
2、键盘录入3个居住地信息,添加到另一个集合ArrayList；
3、把两个list集合中的数据收集到同一个map集合中,键是学生对对象,
值是居住地址；
4、要求map集合中不能存在相同的学生信息.并按照学生年龄降序排列；
5、使用Stream流输出集合中所有姓张的人信息；
**效果:**
 */
public class Demo1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count = 1;
        //学生信息
        List<Student> studentList = new ArrayList<>();
        count = addThings(scanner,count, studentList);
        count = addThings(scanner,count, studentList);
        count = addThings(scanner,count, studentList);
        //地址信息
        int num = 1;
        List<String> cityList = new ArrayList<>();
        num = addCity(scanner,num, cityList);
        num =   addCity(scanner,num, cityList);
        num =   addCity(scanner,num, cityList);

        Map<Student,String> map=new HashMap<>();
        for (int i = 0; i < studentList.size(); i++) {
            map.put(studentList.get(i),cityList.get(i));
        }
        map.forEach((key,values)->{
            System.out.println(key.toString()+",对应的地址是"+values);
        });

    }

    //添加信息
    public static int addThings(Scanner scanner,int count, List<Student> studentList) {

        Student student = new Student();
        System.out.println("请输入第" + count + "学生姓名");
        student.setName(scanner.next());
        System.out.println("请输入第" + count + "学生年龄");
        student.setAge(scanner.nextInt());
        studentList.add(student);
        count++;
        return count;
    }

    //地址信息
    public static int addCity(Scanner scanner, int num, List<String> cityList) {
        System.out.println("请输入第" + num + "位同学的住址信息");
        cityList.add(scanner.next());
        num++;
        return num;
    }
}
